引言
昨天學到的:
| 命令 | 簡介 |
|---|---|
| 命令 --help | 查看命令使用說明 |
今天的題目正好與 --help 有關~
General Skills / Wave a flag
題目給了一個檔案,而且一開始就提示你:「會不會調用執行檔或工具的 help 標誌」,
其實就是我昨天提到的 --help 或是 -h ,總之我們先用 wget 下載下來看看:
| 連結名 | 下載的檔案 |
|---|---|
| This program | warm |
執行看看:
$ ./warm
bash: ./warm: Permission denied
咦?不能執行,它說權限不足?
原來網路上載下來的執行檔是不能直接執行的,必須手動替它加上執行權限才行:
$ chmod +x ./warm
這樣會幫你把 warm 加上執行權限,你可以執行它了。
這是一種保護機制,避免來路不明的執行檔胡亂肆虐。
chmod 是用來改變使用者對檔案存取權限的命令,即 change mode 之意,可以藉由
+、-增或減對檔案的權限,如這題的+x代表增加執行權限 (+ execute) ,這邊只介紹它的一小部份功能, chmod 還有其他更多模式的切換功能,往後遇到再慢慢介紹,或是你可以看看維基百科的介紹:chmod
這邊順便補充一下,在打命令時,檔案前面加上
./是什麼意思?
其實應該分開來看,/是用來切分目錄的,
如aaa/bcd.txt代表 aaa 目錄下的 bcd.txt 檔案,
而.代表「目前目錄」,所以./代表「目前目錄下的...」,
如./warm代表「目前目錄下的 warm 檔案」。
值得注意的是,若你想要執行目前目錄的某執行檔,必須寫./warm,
不能只寫warm,這樣會被 shell 誤會warm是一個命令。再補充一個,
..代表前一個目錄,../代表「前一個目錄下的...」。再...再補充一個,最後一個了 (真的) ,
cd -代表「進入歷史紀錄的上個目錄」,
例如你前一次進入/apple/pie/目錄,現在在banana/juice/目錄,
則cd -會進入/apple/pie/目錄裡面,
如果再cd -一次則還是回到/banana/juice/中 (總之就是「上一頁」功能)。
OK, 我們直接執行 warm :
$ ./warm
Hello user! Pass me a -h to learn what I can do!
很明顯必須用 -h 查詢 warm 的說明:
$ ./warm -h
Oh, help? I actually don't do much, but I do have this flag here: picoCTF{b1scu1ts_4nd_gr4vy_616f7182}
成功取得 flag 。